package com.yand.jdk8.stream;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;

/**
 * 集合是数据，流为计算
 * 1, 自己不会添加元素
 * 2, 需要的时候才进行结果运算
 */
public class Stream1 {


    /**
     * 流的创建
     */
    public void test1(){

       //通过 Collection 的方法获取stream流
       List list = new ArrayList<>();
       //顺序流
       Stream s = list.stream();
       //并行流
       Stream s2 = list.parallelStream();



       //通过Arrays的 stream()方法获得一个数组流
        String [] atrr = new String[]{"1","2","3"} ;
        Stream s3 = Arrays.stream(atrr);

        //通过 stream 的of方法
        Stream<Integer> stream2 = Stream.of(1,2,3,4,5,6);

        //4. 创建无限流
        //迭代
        Stream<Integer> stream3 = Stream.iterate(0, (x) -> x + 2).limit(10);
        stream3.forEach(System.out::println);

        //生成
        Stream<Double> stream4 = Stream.generate(Math::random).limit(2);
        stream4.forEach(System.out::println);


    }


}
